<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <div>
      <h2>原生实现前端路由</h2>
      <!-- 1. 需要有几个可以改变url的标签 -->
      <p>
        <a href="#/hot">热映</a> | <a href="#/cinema">影院</a> |
        <a href="#/wait">待映</a>
      </p>

      <!-- 2. 需要有一个容器，用于放切换的内容 -->
      <div id="box"></div>
    </div>

    <script>
      // 3. 需要有一个路由表
      // 路由表是一个数组, 是由对象组成，path和tempalte组成
      const routes = [
        {
          path: "/hot",
          template: "<div>这是热映页面</div>",
        },
        {
          path: "/cinema",
          template: "<div>这是影院页面</div>",
        },
        {
          path: "/wait",
          template: "<div>这是待映页面</div>",
        },
      ];

      // 4. 监听url的改变
      // 使用了hashchange事件
      window.addEventListener("hashchange", () => {
        console.log("url改变了");
        const { hash } = location;
        const str = hash.slice(1);
        routes.forEach((item) => {
          if (item.path === str) {
            document.querySelector("#box").innerHTML = item.template;
          }
        });
      });
    </script>
  </body>
</html>
